Path: senator-bedfellow.mit.edu!faqserv From: Bill Wohler Newsgroups: comp.mail.mh,comp.answers,news.answers Subject: MH Frequently Asked Questions (FAQ) with Answers Supersedes: Followup-To: poster Date: 9 Jul 1995 11:07:30 GMT Organization: Newt Software, Menlo Park, California, USA Lines: 2618 Approved: news-answers-request@MIT.Edu Expires: 20 Aug 1995 11:06:28 GMT Message-ID: Reply-To: Bill Wohler NNTP-Posting-Host: bloom-picayune.mit.edu Summary: This document answers Frequently Asked Questions about MH, a sophisticated mail interface. It should be read by new MH users and comp.mail.mh readers and before posting to this group. Keywords: FAQ,mh,mail,question,answer,pop,slocal,letter,signature, draft,message,folder,xmh,olmh,vmail,vmailtool,comp,repl, forw,scan,SMTP,bind,mh-e,MIME,plum,exmh X-Last-Updated: 1995/05/13 Originator: faqserv@bloom-picayune.MIT.EDU Xref: senator-bedfellow.mit.edu comp.mail.mh:7346 comp.answers:12974 news.answers:48073 Archive-name: mail/mh-faq/part1 Last-modified: $Date: 1995/05/13 09:42:17 $ Version: $Revision: 95.5 $ Posting-Frequency: monthly This is a living list of frequently asked questions on the mailer user interface, Mail Handler, or MH. The point of this is to circulate existing information, and avoid rehashing old answers. Better to build on top than start again. Please read this document before ever posting to this newsgroup. This article is posted monthly. If it has already expired and you're not reading this, you can hope that you saved the instructions to retrieve the FAQ (see "Where can I get MH") so that you can get a copy through other means. Please do not post an answer when someone posts a frequently asked question; rather, email the relevant section of the FAQ to eliminate unnecessary traffic in this newsgroup. This list depends on your comments, additions and fixes: please send them to Bill Wohler . Copyright 1991-1995 Bill Wohler Permission to use, copy, distribute, and translate this document for any non-commercial purpose is hereby granted, provided that this copyright notice appears in all copies. Commercial distributions require prior written consent. This article is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ---------------------------------------------------------------------- Subject: Table of Contents From: Bill Wohler Legend: + new, - deleted, ! changed _______________ 01. Introduction 01.01 Why should I use MH? 01.02 What is the current version/status of MH? 01.03 Where can I get MH? 01.04 ! What references exist for MH? 01.05 ! What other MH software is available? 01.06 How can I print a MH manual? 01.07 How should I report bugs? 01.08 ! How can I convert from my mailer to MH? _______________ 02. Building MH 02.01 What machines does MH run on? 02.02 How do I build MH? 02.03 What options should I use? 02.04 Where can I get POP3? 02.05 Does MH support IMAP? 02.06 Why does "mailgroup mail" only affect inc and not slocal? 02.07 ! How can I build MH on Solaris 2? 02.08 ! How can I build MH on Linux? ______________________ 03. Scanning & Reading 03.01 What do I do if scan shows the wrong date? 03.02 How would one go about reading Usenet with MH? 03.03 How can I search through multiple folders? 03.04 Why don't MH format commands such as %(friendly) work? 03.05 Why doesn't "show" display all of a MIME message? 03.06 Can I get show not to run "less" so much on MIME messages? 03.07 Why do I get "mhn: don't know how to display content"? __________ 04. Filing 04.01 Can I append MH messages to a UNIX mailbox format file? 04.02 Can I append MH messages to a GNU Emacs rmail BABYL-format file? 04.03 Why do I get ".../.mh_sequences is poorly formatted?" 04.04 + How can you save News articles into an MH folder? ________________________ 05. Composing & Replying 05.01 Why does repl add a "Re:" to a message that already has one? 05.02 How do I include messages in repl with or without ">"? 05.03 How can I eliminate duplicate copies of letters to myself? 05.04 ! How can I include my signature? 05.05 ! How do I call my editor with arguments? 05.06 How can I digestify messages in a folder for mail to another user? 05.07 How can I change my return address? 05.08 How can I change my From header? 05.09 How can I save a copy of all messages I send? 05.10 Can the folder in Fcc: be dynamically specified? 05.11 + Can I post secure/encryped mail? ___________ 06. Posting 06.01 ! What to do with "Problems with edit - draft removed". 06.02 Can I run my message through a program (e.g., ispell) before sending? 06.03 What to do with "bad address 'xxx' - no at-sign after local-part". 06.04 Fixing "post: problem initializing server; [BHST] no servers available" 06.05 Fixing "post: problem initializing server; [RPLY] 503 Sender already specified" 06.06 Fixing "post: unexpected response; [BHST] no socket opened" 06.07 How do I fix the "X-Authentication-Warning" header? 06.08 + Fixing "post: unexpected response; [RPLY] 503 Need MAIL before RCPT" 06.09 + Fixing "post: problem initializing server; [BHST] premature end-of-file on socket" 06.10 + Fixing "Sender didn't use the HELO protocol" 06.11 + Fixing "post: problem initializing server; [RPLY] 553 Local configuration error, hostname not recognized as local ________________ 07. Mail Filters 07.01 What mail filters are available? 07.02 ! Why slocal writes messages to system mailbox that from(1) can't read. 07.03 Where can I read about slocal and the format of .maildelivery? 07.04 How do I debug my .maildelivery file? 07.05 Why isn't slocal working? ________ 08. mh-e 08.01 ! Is there documentation for mh-e? 08.02 How can mail aliases can be expanded in mh-e? 08.03 + How do I use POP with mh-e? _______ 09. Xmh 09.01 How can I get xmh to use Emacs as the editor? 09.02 Does xmh support subfolders? 09.03 How do I precede included messages with ">" when replying in xmh? Appendix ! Glossary & Acknowledgments Switching xmh's editor babyl2mh.pl inco srvrsmtp.c patch mhn.c patch 1 mhn.c patch 2 ------------------------------ Subject: Preface Viewing This Article From: Bill Wohler To skip to a particular question numbered xx, use "/^F.*xx" with most pagers. In GNU Emacs type "M-C-s ^F.*xx", (or C-r to search backwards), followed by ESC to end the search. To skip to new or changed questions, use "/^S.*[!+]" with most pagers and "M-C-s ^S.*[!+]" in GNU Emacs. This article is in digest format. Nn may have already broken this message into separate articles; if not, then type "G %". In rn, use ^G to skip sections. This article is treated as an outline when edited by GNU Emacs. Run "M-x describe-mode" to see available outline-mode commands. Useful commands are "M-x hide-body", "C-c C-s" (show-subtree) and "M-x show-all" Numbers in square brackets denote the month and year of the last update. If you should need the Internet address, use nslookup or dig if you have them, or send mail to dns@grasp.insa-lyon.fr with "help" for a Subject. ------------------------------ Subject: 01. ***** Introduction ***** From: Bill Wohler ------------------------------ Subject: 01.01 Why should I use MH? From: Jerry Peek The MH message handling system is a set of electronic mail programs in the public domain. If your computer runs UNIX, it can probably run MH. The big difference between MH and most other "mail user agents" is that you can use MH from a UNIX shell prompt. In MH, each command is a separate program, and the shell is used as an interpreter. So, all the power of UNIX shells (pipes, redirection, history, aliases, and so on) works with MH--you don't have to learn a new interface. Other mail agents have their own command interpreter for their individual mail commands (although the mush mail agent simulates a UNIX shell). Because MH commands aren't part of a monolithic mail system, you can use them at any time; you don't have to start or quit the mail agent. Because you use them from a shell prompt, you can use all the power of the shell. If your shell has time-saving aliases or functions (and most do), you'll be able to use them with MH, of course. And because MH isn't a monolithic mail agent, you can use MH commands in UNIX shell scripts, or call them from programs in high-level languages like C. Unlike most mail agents, MH keeps each message in a separate file. The filename is the message number. To rearrange the messages, MH just changes the filenames. MH can use standard UNIX file system operations such as removing, copying and linking messages. The message files are grouped into one or more folders, which are actually UNIX directories. MH is free, powerful, flexible--and the basics are easy to learn. ------------------------------ Subject: 01.02 What is the current version/status of MH. From: Bill Wohler The current version of MH is 6.8.3. This version includes MIME, a multi-media MH package that implements the new IETF work on Multi-media 822 (MIME). This allows you to include things like audio, graphics, and the like, in your mail messages. --Marshall Rose MH now works with Kerberos as well. In addition, a new program called mhparam extracts arguments from .mh_profile which is useful in shell scripts. Please see the file CHANGES in the distribution for more details. [5.94] ------------------------------ Subject: 01.03 Where can I get MH? From: Bill Wohler MH comes standard with: Berkeley Software Design BSD/386 . . . . MH 6.8.3 Control Data Corp. CDC4680-MP . . . . . . EMH 1.4.2 (modified MH) DEC Ultrix 3.1 . . . . . . . . . . . . . MH 6.5 DEC Ultrix 4.2A.4 . . . . . . . . . . . . MH 6.7.1 DEC OSF/1 . . . . . . . . . . . . . . . . MH 6.7 Evans and Sutherland ES/OS 2.3 . . . . . MH 6.6 IBM PS/2 AIX 1.3 . . . . . . . . . . . . MH 6.4 IBM RISC System/6000 AIX 3.x and 4.1 . . MH 6.6 Linux . . . . . . . . . . . . . . . . . . MH 6.8.3 MIPS RISC/OS 4.52 . . . . . . . . . . . . MH 6.6 Sony NEWS-OS 4.3 . . . . . . . . . . . . MH 6.7.2 Tektronix UTek . . . . . . . . . . . . . MH (Version Unknown) Table maintained by: "James R. Hamilton" If you should need the Internet address, use nslookup or dig if you have them, or send mail to dns@grasp.insa-lyon.fr with "help" for a Subject. via anonymous ftp: [5.94] ftp://ftp.ics.uci.edu/mh/mh-6.8.tar.Z 2MB ftp://ftp.uu.net/networking/mail/mh/mh-6.8.tar.Z ftp://krynn.efd.lth.se/pub/mail/mh-6.8.tar.Z via mail: Send a note to either mail-server@nluug.nl or archive-server@germany.eu.net with a body containing the following: send mail/mh/mh-6.8.tar.Z UK users may be able to use ftpmail@doc.ic.ac.uk. Send a note whose body contains "help" to this address. [12.92] Send a note to ftpmail@decwrl.dec.com whose body contains "help" on a line by itself get information on getting ftp sources by mail. Also include the lines "connect" and "dir /pub/mail/ua/mh" to see which files are available local to decwrl. Please do this as a last resort only. [1.93] via U.S. mail: You can send $75 US to the address below. This covers the cost of a 6250 BPI 9-track magtape, handling, and ship- ping. In addition, you'll get a laser-printed hard-copy of the entire MH documentation set. Be sure to include your USPS address with your check. Checks must be drawn on U.S. funds and should be made payable to: Regents of the University of California The distribution address is: University of California at Irvine Office of Academic Computing Engineering Gateway E2130 Irvine, CA 92717 USA +1 714 824 5153 Sadly, if you just want the hard-copies of the documenta- tion, you still have to pay the $75. The tar image has the documentation source (the manual is in roff format, but the rest are in TeX format). Postscript formatted versions of the TeX papers are available, as are crude tty-conversions of those papers. [1.93] ------------------------------ Subject: 01.04 ! What references exist for MH? From: Bill Wohler Books: MH & xmh: E-mail for Users & Programmers. Third edition. Jerry Peek, with Bill Wohler and Brent Welch. ISBN 1-56592-093-7. $29.95. 738 pages. O'Reilly & Associates, Inc. Book Orders: US and Canada: 800-998-9938. Fax: 707-829-0104. References to "the MH book" in this document refer to the second edition of this book (section numbers for the first edition appear in parenthesis). To get a list of non-US distributors, send a note to nuts@ora.com or call +1-707-829-0515. Examples from this book are in: ftp://ftp.uu.net/published/oreilly/nutshell/MHxmh/MHxmh2.tar.Z 54k There is another book that contains a number of examples of advanced mail handing using MH as the example message handler. It's also quite a good reference on email in general. [12.92] The Internet Message. Marshall T. Rose ISBN 0-13-092941-7. 396 pages. P T R Prentice Hall Papers: MHN Tutorial by Jerry Sweet ftp://ftp.ics.uci.edu/mh/contrib/multimedia/mhn-tutorial.ps.Z 141k ftp://ftp.ics.uci.edu/mh/contrib/multimedia/mhn-tutorial.tex.Z 48k Usenet: comp.mail.mh (gatewayed to MH-users) Mailing lists: General questions/discussion: MH-users@ics.uci.edu (gatewayed to comp.mail.mh). MH developers and maintainers: MH-workers@ics.uci.edu. Please use MH-users-request and MH-workers-request to request an addition or deletion. MH-users archives: ftp://ftp.ics.uci.edu/mh/mh-users/ The files are in packf(1) format, compressed with compress(1). To get them, use anonymous ftp and set "binary" transfer mode. mh-users.86.Z 8549 mh-users.86.scan.Z 771 mh-users.87.Z 55449 mh-users.87.scan.Z 3679 mh-users.88.Z 182805 mh-users.88.scan.Z 11339 mh-users.89.Z 89151 mh-users.89.scan.Z 5522 mh-users.90.Z 402470 mh-users.90.scan.Z 21551 mh-users.91.Z 878763 mh-users.91.scan.Z 36992 mh-users.92.Z 1281585 mh-users.92.scan.Z 44975 mh-users.93.Z 1544159 mh-users.93.scan.Z 53938 mh-users.mbox: current archive, uncompressed. There are directions in the README file. Basically, you can use either "msh" or the individual commands "inc -file" to get the messages into a folder, and then "scan", "pick", "show", and so on (or your favorite commands in xmh, mh-e, etc.). --Jerry Peek This document: via WWW: http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/mh-faq/part1/top.html [12.94] via anonymous ftp: ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/mh-faq/part1 [12.94] ftp://ftp.uu.net/archive/usenet/news.answers/mail/mh-faq/part1.Z [12.94] ftp://ftp.cs.ruu.nl/pub/NEWS.ANSWERS/mail/mh-faq/part1 [12.94] via mail: Each of the following addresses is following by commands which should be included as the body of the message. mail-server@rtfm.mit.edu [12.94] send /usenet/news.answers/mail/mh-faq/part1 mail-server@cs.ruu.nl [12.94] send /pub/NEWS.ANSWERS/mail/mh-faq/part1 mh-e documentation: [05.95] GNU Emacs 19.29 comes with a version of mh-e which now includes on-line (Texinfo) documentation. Try "C-h i m mh-e RET". See also "What other MH software is available?" to see where you can get the latest version of mh-e which includes the documentation sources. exmh FAQ: ftp://parcftp.xerox.com/pub/exmh/exmh.README [12.94] Signature and Finger FAQ: via WWW: http://www.cis.ohio-state.edu/hypertext/faq/usenet/signature_finger_faq/faq.html via anonymous ftp: ftp://rtfm.mit.edu/pub/usenet/news.answers/signature_finger_faq via mail (see above for usage): mail-server@rtfm.mit.edu send /usenet/news.answers/signature_finger_faq ------------------------------ Subject: 01.05 ! What other MH software is available? From: Bill Wohler vmh Vmh is designed for people using the bulletin-board features of MH, where mail is stored in packed (single-file) folders. As a result, use of this program cannot be mixed with the use of normal MH commands. Vmh is a part of the official MH distribution. --James Perkins [1.93] xmh Xmh is a X11 mouse-based MH browsing tool. It is very powerful and feature-filled and thus comes with a moderate learning curve. Its dependence on the X11 environment makes it very reconfigurable, but only by people well-versed in X applications programming. Its message reply built-in-editor interface is not always popular among those used to having MH bring up the editor of their choice. --James Perkins xmh is part of the standard X Window System distribution from the X Consortium. Ultrix also ships dxmail which is similar. ftp://cs.utk.edu/pub/xmh.shar.Z 162k Here's a version of xmh that includes MIME. --Harald Tveit Alvestrand [1.93] ftp://aun.uninett.no/pub/mail/mixmh/mixmh-0.3.tar.Z 232k exmh EXMH is a user interface for the MH mail system written in TCL/TK. Exmh has MIME support, color feedback in the scan listing, a folder display with one label per folder, clever scan caching, facesaver bitmap display; background inc, various inc styles, searching over folder listing and message body, a dialog-box interface to MH pick, a simple built-in emacs-like editor, interfaces to other editors, user preferences, user hacking support. --Brent Welch [8.94] ftp://parcftp.xerox.com/pub/exmh/exmh-1.4.1.tar.Z 357k ftp://parcftp.xerox.com/pub/exmh/exmh-1.5omega.tar.Z mh-e Mh-e is the GNU Emacs front end for MH. It offers all the functionality of MH, the visual orientation and simplicity of use of xmh, and full integration with Emacs, including thorough configurability. The command set is similar to that of rmail (the Emacs front end for BSD mail) and BSD mail itself. On-line help is available. Mh-e allows one to read and process mail very quickly: commands are single characters and completion and defaults are available for file and folder names. During a reply, the original message is displayed simultaneously in another window for easy reference where a mh-e command can quickly incorporate and format this text into your reply. With mh-e you compose outgoing messages in Emacs. This is a big plus for Emacs users, but it has been known for non-Emacs users to be able use mh-e after only learning the most basic cursor motion commands. Mh-e is easily configured via the Emacs edit-options menu, and people familiar with Emacs Lisp will be able to further reconfigure mh-e beyond recognition. Mh-e is part of the standard GNU Emacs distribution. Note that mh-e got much faster in Emacs 18.56. --Stephen Gildea [05.95] ftp://ftp.x.org/misc/mh-e/mh-e-5.0.tar.Z 66k metamail Metamail is a package that can be used to convert virtually ANY mail-reading program on UNIX into a multi-media mail-reading program. It is an extremely generic implementation of MIME (Multipurpose Internet Mail Extensions), the proposed standard for multi-media mail formats on the Internet. The implementation is extremely flexible and extensible, using a "mailcap" file mechanism for adding support for new data formats when sent through the mail. At a heterogeneous site where many mail readers are in use, the mailcap mechanism can be used to extend them all to support new types of multi-media mail by a single addition to a mailcap file. The metamail distribution comes complete with a small patch for each of over a dozen popular mail reading programs, including Berkeley mail, mh, Elm, Xmh, Xmail, Mailtool, Emacs Rmail, Emacs VM, Andrew, and others. Note that the MH patches are now integrated into MH 6.8 --Nathaniel Borenstein ftp://thumper.bellcore.com/pub/nsb/mm2.7.tar.Z plum Plum is a highly configurable and extensible screen-oriented front-end for processing MH mail on ASCII terminals. Unlike mh-e, the extension language used in plum is perl, not LISP. Plum offers many of the advantages of xmh, but lacks several of xmh's disadvantages. The look&feel derives more from vi than from emacs. Key bindings and functions may be changed on the fly to suit the user's preference. It offers filename and word completion on folder, variables, and command names. Until it is included in the standard distribution (under miscellany), you can find a copy on: ftp://perl.com/pub/perl/scripts/plum.gz 29k or mail requests to Tom Christiansen . [11.94] mhunify Mhunify is a set of perl scripts and templates that provides shell-level MH functionality with USENET news. Since MH supports MIME, MIME-format news articles just work. I've found that being able to handle news in the same way that I handle email is very useful, although there are some tradeoffs. Mhunify also treats MH folders just like news groups. If you subscribe to several mailing lists, and your email is automatically delivered to separate folders, say, via procmail or via MMDF's .maildelivery, the mhunify package lets you progress automatically through your folders just as you would news groups. --Jerry Sweet [11.94] ftp://ftp.ics.uci.edu/mh/contrib/multimedia/mhunify.shar.gz olmh Sun's Open Windows 3 comes with a demo for OLIT (Open Look Interface Toolkit, the Open Look wrapper to Xt) named olmh that does handle 3rd and subsequent levels of nesting of folders. --Dale Carstensen Obtain the Open Windows 3 distribution CD/ROM from Sun (SPARC only). To do this, call 1-800-USA-4SUN and send tone "2" for telemarketing after it answers. The 4.1.2 CD/ROM may also have Open Windows 3. The list price for the 4.1.2 CD/ROM is $200. vmail Vmail is a curses-based, vi-like message browser which calls on MH programs to manipulate mail. It can be used on almost any terminal. It organizes mail folders into index pages, from which a message can be selected to be shown, replied-to, forwarded, refiled, deleted, and so on. The vi-like interface and command keystrokes are comfortable to less-experienced UNIX users, and it is a small, compact program, unlike the mh-e Emacs package. This version of vmail has been bugfixed and enhanced from the original vmail published on the net in 1987 by J. Zobel. --James Perkins [1.93] ftp://ftp.uu.net/comp.sources.unix/volume12/vmail/part0*.Z 46k ftp://ftp.ucs.ubc.ca/pub/mh/vmail.[1-3]of3.Z 58k Or mail requests to James Perkins . [5.94] vmailtool If you have a Sun workstation, vmailtool may be for you. It is a button gadget panel for the above-mentioned vmail program. It brings vmail into the windows era where people no longer need to memorize specific command keystrokes. It also provides a mail icon with the flag that pops up when new mail arrives. Again, this is a compact, simple tool, unlike the powerful xmh program. Still, it's a welcome alternative for many people who are running SunView or OpenWindows. --James Perkins [1.93] ftp://ftp.ucs.ubc.ca/pub/mh/vmailtool.Z 18k or mail requests to James Perkins . [5.94] mmh MMH, My Mail Handler, is a Motif interface for reading and sending mail. It uses the MH commands to actually handle sending a receiving messages. It does not support all the capabilities of MH, but offers a large enough subset to handle the majority of users. Its intended user is someone between "bumbling email novice" and "sophisticated user". Hooks are provided to allow the user to customize and add new commands. ftp://ftp.eos.ncsu.edu/pub/bill/bill.tar.Z 120k X.500 lookups If a name is enclosed in square brackets, when entering a destination address: To: [Greg Wickham,CSIRO] a search will be made in the X.500 Directory for the individual's entry. If an address exists then it will be extracted and placed into the headers. Mail requests for the software to the author. --Andrew Waugh QueueMH QuemeMH is an email based service request and tracking system based on the Rand Mail Handler. --Barbara Dyker [1.93] ftp://ftp.cs.colorado.edu/pub/cs/sysadmin/utilities/queuemh.tar.Z 98k QMH: Qmh is an MH-based group mail management tool. Written entirely in perl, Qmh combines the best aspects of MH with group mail heuristics and delivers a sensible package for all levels of UNIX users. A limitless number of individual queues and associated groups of permitted users can be established. Specific functionality includes the following modes of operation; checking header dates and sending reminder/deadline mail, editing existing messages, help screens, creating new messages from scratch or exiting messages, resolving messages, scanning queue folders, and annotating with status both by editing and sending mail. Qmh is a single generic program in and of itself from which all modes of operation are invoked. Additionally, each separate queue may be accessed via a link to the single program. All system configuration is maintained in a single file that is read upon each invocation of Qmh. Formatting and template files are provided in the system library, although individual users can override the defaults simply by creating equivalent files in their own MH mail directory. Qmh provides a powerful database-like functionality by allowing limitless per-queue X-Qmh-<$value> headers to be included in messages. These "fields" then form the context of the queue messages and provide a user-defined, but yet structured environment for queries, reporting, and random information. Qmh is designed to provide a complete solution for SA groups, help desks, support organizations, or wherever two or more individuals are trying to manage multiple mail requests. Qmh is also compatible with versions of xmh that provide user-level command buttons. Provided in the Qmh package is a ~/.Xdefaults template file that's setup to harness the power of Qmh. For more info, write to . [3.93] MacMH and PC/MH: These were available only for non-commercial degree-granting institutions from: Networking & Communication Systems 115 Pine Hall Stanford University Stanford, CA 94305-4122 Phone: +1 415-723-3909 See also: ftp://netix.com/pub/pc-mh-info/* --Jerry Peek For more PC/MH info, contact: Netix Communications, Inc. 15375 Barranca Parkway Building G, Suite 107 Irvine, CA 92718 Phone: +1 714-727-9532 FAX: +1 714-727-3922 Internet: info@netix.com --Shannon Yeh In addition, you might try Wollongong, to see if they have something you can get. [8.94] ------------------------------ Subject: 01.06 How can I print a MH manual? From: Bill Wohler , Jos Vos To order a copy by mail, see the section on how to get MH by mail (see "Where can I get MH?" and "What references exist for MH?"). To print your own copy, first obtain the MH sources (see "Where can I get MH?") if you don't already have it. Go into the "doc" directory and run "make guide" to create the administrators guide and "make manual" to create a user's manual which includes tutorials and man pages. If the doc directory is empty or is missing the Makefile, you'll have to run "mhconfig MH" in the conf directory so that the documentation with correct local information is created. For properly formatting the documentation (at least the manual pages) you might even have to install MH, because a reference to a tmac.h file in the MH lib directory is made in the manual pages. You can also ftp the ASCII or postscript versions: ftp://ftp.ics.uci.edu/mh/doc/tutorial.ps.Z 65k ftp://ftp.ics.uci.edu/mh/doc/ADMIN.ps.Z 56k ftp://ftp.ics.uci.edu/mh/doc/MH.ps.Z (man pages) 261k ftp://ftp.uu.net/networking/mail/mh/doc/tutorial.ps.Z ftp://ftp.uu.net/networking/mail/mh/doc/ADMIN.ps.Z ftp://ftp.uu.net/networking/mail/mh/doc/MH.ps.Z (man pages) Or, you can send a note to mail-server@nluug.nl with a body containing the following: send /mail/mh/papers-ps/tutorial.ps.Z [1.93] ------------------------------ Subject: 01.07 How should I report bugs? From: Bill Wohler Mail them to Bug-MH@ics.uci.edu and be sure to include the output of the -help option as well as what hardware and operating system you are using. ------------------------------ Subject: 01.08 ! How can I convert from my mailer to MH? From: Jerry Peek If you use one of a mail agent like 'mail', 'mailx', 'elm' or 'mush', converting to MH is easy. When you run the 'inc' command, it reads all new messages from the system mailbox into your 'inbox' folder. Those mail agents also have separate files or "folders" that hold messages in the same format as the system mailbox. You can read them with the 'inc -file' command. For example, to read the messages from your 'mbox' mail file into your MH 'inbox' folder, you'd type: % cd % cp mbox mbox.backup % inc -file mbox If you see the usual "Incorporating new mail into inbox..." message and a scan listing, the messages probably were converted. Read some or all of them (with the 'show' command) and be sure. The 'inc' won't remove your mbox unless you use '-truncate'. Jason R. Mastaler points out that you can also specify an alternate folder to inc. He provides a script to convert all your folders en masse: for arg in `cat flist`; do echo "converting $arg" inc +"$arg" -file "$arg" -silent done [05.95] Section D.4 (C.4) of the MH book lists two scripts to convert mail files to MH folders: babyl2mh to convert from rmail's BABYL format; vmsmail2mh to convert from VMS's mail (see "What references exist for MH") to see where the book's examples can be ftped from). Vivek Khera rewrote this in Perl since the original script doesn't work for some people (see "babyl2mh.pl" below). [1.93] Juergen Nickelsen provides yet another short script. He says, "You can remove the second to last second line ("> $input"), so that the script doesn't zero out your RMAIL file. "Another alternative is to replace this line with "inc -file $tmpmbox $folder && > $input", so that the RMAIL is only zeroed if inc successfully incorporated the mail. Finally one could add a switch -z, so that the RMAIL file is only zeroed if the switch is given. See [Appendix "inco."] [1.93] Use the following to convert a BABYL format file to UNIX mail format. [5.94] ftp://inf.informatik.uni-stuttgart.de/pub/gnu/emacs_extras/rmailtovm.el.Z 6k See also MH book Appendix D (Appendix C). ------------------------------ Subject: 02. ***** Building MH ***** From: Bill Wohler ------------------------------ Subject: 02.01 What machines does MH run on? From: Jerry Peek If you have a computer running UNIX, you can probably run MH. ------------------------------ Subject: 02.02 How do I build MH? From: Bill Wohler By carefully reading the READ-ME in the root of the source hierarchy, one should not have any trouble building MH. ------------------------------ Subject: 02.03 What options should I use? From: Bill Wohler BERK: Do NOT include the BERK option (in versions 6.7 or later)! BERK breaks the mh-format functions that take apart address lines, for example mbox, from, and friendly. This would really put a crimp on my replcomps file. LOCKF: if you have NFS, you need to lock your mailbox with lockf() so the lock will be honored by all machines on the local network. If you have the lockf() system call, include LOCKF. JQ Johnson makes the point that one should use this option carefully since it requires a robust lockf() call. For example, this option caused serious problems on his SunOS 4.1.1. He suggested using LOK_BELL instead, and adding "lockstyle: 1" to mtstailor. ATZ: makes your timezones print like "EST" instead of "-0500". Much prettier. --Stephen Gildea However, Tony Landells replies: "Yes; very pretty. How unfortunate that timezone names are so ambiguous, so that EST can be interpreted, at a minimum, as (American) Eastern Standard Time, (Australian) Eastern Standard Time, or (Australian) Eastern Summer Time (and yes, I think it's dumb having the same acronym for both normal and Summer time, but that's a different problem). While the numeric timezones may not look as nice, they are, at least, reasonably unambiguous. I would urge anyone who ever intends/hopes/expects to use email outside the U.S. to NOT use ATZ (sorry Stephen)." At any rate, the conf/examples directory has been updated and contains many examples show you which options are required on your platform and which are optional (in the upcoming version MH 6.8). At any rate, it is recommended that you examine the options in the example configuration files, and read about them in READ-ME. RPATHS: a side-effect is that slocal writes messages to your system maildrop without the MMDF C-A's that separate messages, so your BSD tools like from work. [12.92] ------------------------------ Subject: 02.04 Where can I get POP3? From: Bill Wohler MH6.7 (and earlier versions too) include a server for version 3 of POP. ------------------------------ Subject: 02.05 Does MH support IMAP? From: John Romine No. MH only supports retrieving mail using POP3. POP3 is on the "standards track"--it is now an elective Internet Draft Standard (see RFC1280 for more details). At this point, IMAP[23] are "experimental, limited use" protocols; it is unlikely that MH will support them. From: Bill Wohler However, I've found several things which might help. First, a definition lifted from the Pine FAQ: What is IMAP? IMAP stands for "Internet Message Access Protocol". An IMAP client program on any platform at any location on the Internet can access email folders on an IMAP server. While the messages appear to be local, they reside on the server until the client explicitly moves or deletes them. The IMAP protocol is a superset of POP, containing all POP commands plus more. For a comparison of IMAP and POP, see the paper Comparing Two Approaches to Remote Mailbox Access: IMAP vs. POP (in ftp.cac.washington.edu:/mail/imap.vs.pop). IMAP is what allows Pine (or any other IMAP client) to get to email on a central campus email server. There are current IETF working groups revising IMAP and readying it to become an Internet standard. A copy of the latest IMAP draft may be obtained from ftp://ftp.cac.washington.edu/mail/latest-imap-draft. For a list of IMAP clients, see the file imap.software, in the same directory. [8.94] Here are a few other references: From: David L Miller ipop3d from the UW IMAP toolkit can operate in a couple modes. As a straight POP3 server, it uses the same C-client library as imapd, so it co-exists comfortably with imapd. It can also operate as a POP-to-IMAP gateway so that your POP-only clients can access IMAP services. [8.94] ftp://ftp.cac.washington.edu/mail/imap.tar.Z 1.0M From: Mark Crispin The only answer I can give for [how MH users can use IMAP] is that Pine can read mailboxes in MH format; and that someone might in the future develop a version of MH that can use IMAP. [8.94] ------------------------------ Subject: 02.06 Why does "mailgroup mail" only affect inc but not slocal? From: John Romine If "mailgroup" is set, inc is made set-group-id to this group name. Some SYS5 systems want this to be set to "mail". Set this if /usr/spool/mail (or /usr/mail) is not world-writable. These changes were contributed by Peter Marvit, and "inc" is very careful about its use of the set-gid privilege. Note that slocal doesn't know how to deal with this, and will not work under these systems; just making it set-group-id will open a security hole (since it doesn't know when to drop the set-gid privileges). If you're using "mailgroup", you should remove slocal (and its man page) from your system. [1.93] Alternatives to slocal include deliver, procmail, and mailagent. Archie can help you find where they are kept. ------------------------------ Subject: 02.07 ! How can I build MH on Solaris 2? From: Neil Rickert , Scott K. Hutton , Casper H.S. Dik First, don't use the BSD compatible stuff. Make sure that the Sun or GNU compiler appear before the BSD compiler in your PATH. Second, don't use GNU make. Make sure that the Sun make appears before the GNU make in your PATH. Use conf/examples/solaris2.sun.com and fix the paths, if necessary. Optionally change the following to use the GNU compiler, to perform optimization, and to create shared libraries. cc gcc ccoptions -O -g -msupersparc slflags -shared Incorporate the diff in [Appendix "mhn.c patch 1"]. When compiling, you can ignore the following warning: fmtcompile.c", line 238: warning: semantics of "/" change in ANSI C; use explicit cast If you're using AFS, you'll have to replace any occurrence of "ln" with "ln -s" wherever the make dies when it tries to make a link "on a different file system." [11.94] Unset LD_LIBRARY_PATH. [12.94] From: Gary Strand To cure slocal's Segmentation Fault problems, I decided to try 'cc' instead of 'gcc' (an alleged no-no under Solaris) and MH built just fine, and it's working perfectly. [05.95] ------------------------------ Subject: 02.08 ! How can I build MH on Linux? From: Brandon S. Allbery The current patch is the first one listed below. The old patch only works with libc-4.4, which is no longer used. The current patch is split into two pieces, as with the previous patch, but now the divisions are purely functional: the first diff enables MH to compile, the second allows creation of a shared library. [Ed: The paths are up to date, but I think the info in this paragraph is old.] Recent versions of GNU make choke on MH's makefiles. Unfortunately, the shared library patches depend on "export". If you have problems building MH, remove the "export" lines from all of the makefiles (if you applied the shared library patches) and try using BSD pmake instead. ftp://sunsite.unc.edu/pub/Linux/system/Mail/readers/mh-6.8.3-diffs.tar.gz ftp://sunsite.unc.edu/pub/Linux/system/Mail/readers/mh-6.8.3-bin.tar.gz The sizes are 650k and 22k respectively. [05.95] ------------------------------ Subject: 03. ***** Scanning & Reading ***** From: Bill Wohler ------------------------------ Subject: 03.01 What do I do if scan shows the wrong date? From: Bill Wohler Upgrade to MH 6.8. [1.93] ------------------------------ Subject: 03.02 How would one go about reading Usenet with MH? From: Jerry Peek You can save articles in the news readers for later perusal with MH. First, create a symbolic link from your mail directory (e.g., usenet) to your news directory (e.g., "ln -s ~/News ~/Mail/usenet"). You can then treat your news directory as a mail folder. Thus, to select a news group, use "folder +usenet/comp/mail/mh". To set the default save location correctly in rn, use: rn -M -/ or in your nn presentation sequence: news.announce. +$F/$N comp.mail.mh + . . If there's news spooled on your machine (that is, not via NNTP) then you can read a newsgroup with commands like: show first +/usr/spool/news/comp/mail/mh next ... You can also use sequences to keep track of what you've read. MH will automatically set a "cur" sequence in each newsgroup you read that way. So, to continue reading the newsgroup sometime later, after you've read some other folder, you can do: next +/usr/spool/news/comp/mail/mh and you'll read the next (new) article (if any) in that newsgroup. Note that this can eventually make your private context file pretty huge; if there's a group you don't read often, you can remove its context entries with a command like: rmf +/usr/spool/news/comp/mail/mh Don't try that on a folder full of mail (a folder that isn't read-only), though... in that case, it'll remove all the messages! I haven't looked into posting. It seems like it shouldn't be hard. You could set up a "sendproc" that would look at outgoing email messages. If the message had a Newsgroups: header field, your sendproc could call inews(1) instead of post(8). I haven't seen much in the MH manpages or documentation about sendprocs (though I haven't looked for a couple of years...). See the "mysend" script in the MH book section 13.13. A threaded news reader like trn or tin is so much nicer, though, that reading news with MH may not be worth the hassle. See also MH book section 8.7. [11.94] From: Stephen Gildea Although news readers are better, if one really wants to use MH, bbc will do the job. For example, "bbc comp.mail.mh" reads this newsgroup. To enable bbc, you have to specify "bboards" when you build MH. From: Bill Wohler You can post via mail. Send your article to news-group-name@cs.utexas.edu (e.g., comp-mail-mh@cs.utexas.edu). Note that the dots in the newsgroup name have been replaced by dashes. Don't worry if the newsgroup name has a dash in it. To cross-post, simply add the other newsgroups to the cc: field. See mhunify in (see also "What other MH software is available?"). [11.94] ------------------------------ Subject: 03.03 How can I search through multiple folders? From: Jerry Peek Recurse through the folders (in csh and sh): % foreach f (`folders -f`) $ for f in `folders -f` ? pick [switches] +$f > pick [switches] +$f ? end > done Or create a folder that contains links to all messages (in csh and sh): % foreach f (`folders -f | grep -v -x ln`) ? refile -src +$f -link all +ln ? end $ for f in `folders -f | grep -v -x ln` > do refile -src +$f -link all +ln > done and in the future, refile messages with "refile +folder +ln". To find something, use: % pick [switches] +ln See MH book sections 7.2.9, 7.8.3. [3.93] ------------------------------ Subject: 03.04 Why don't MH format commands such as %(friendly) work? From: Anthony Baxter The BERK option disables address parsing and therefore functions such as %(friendly). Recompile MH without the BERK option. [5.94] ------------------------------ Subject: 03.05 Why doesn't "show" display all of a MIME message? From: Jerry Peek It's not the fault of the "show" command or of MH in general. It's your system's configuration. Check the mhn_defaults file in your MH library directory; if it doesn't have defaults for all content types, add them. Or, if you can't (or shouldn't) change mhn_defaults, you can put default entries in your MH profile file for those content types. Here's the part of the mhn(1) manpage that explains how content types are handled: First, mhn will look for an entry of the form: mhn-show-/ to determine the command to use to display the content. If this isn't found, mhn will look for an entry of the form: mhn-show- to determine the display command. If this isn't found, mhn has two default values: mhn-show-text/plain: %pmoreproc '%F' mhn-show-message/rfc822: %pshow -file '%F' If neither apply, mhn will check to see if the message has a application/octet-stream content with parameter "type=tar". If so, mhn will use an appropriate command. If not, mhn will complain. So, add defaults that cover the types MH doesn't handle right now (or doesn't handle the way you want it to). Your defaults will override corresponding defaults in the mhn_defaults file. For example, if you don't have an HTML editor/browser on your system, you could tell MH to use the "less" paginator for HTML message parts: mhn-show-text/x-html: less %F You can put that line in your MH profile. You can even set different defaults for different terminal types (say, your VT100 at home and your X setup at work). Make a file in the same format as mhn_defaults; store its pathname in the MHN environment variable. Add a test to your shell setup file (.profile, .login) that tests the value of the TERM variable -- and, if you have an mhn setup file for that terminal type, store its pathname in the MHN variable. [8.94] From: Michael K. Neylon If you are not using the X Window System, you may have to add this line to your MH profile: mhn-charset-iso-8859-1: /bin/sh -c '%s' [11.94] ------------------------------ Subject: 03.06 Can I get show not to run "less" so much on MIME messages? From: Bill Wohler If you say, "show all," and one of the messages was a MIME message, your pager will be run several times on each message, rather than once on all the messages as a whole. If you find this annoying, set the environment variable NOMHNPROC: % setenv NOMHNPROC "" # csh $ NOMHNPROC= # sh and bash $ export NOMHNPROC [11.94] ------------------------------ Subject: 03.07 Why do I get "mhn: don't know how to display content"? From: Keith Moore MH 6.8.3 has a bug where it will not handle multipart/foo correctly if it doesn't know about foo. This patch (see "mhn.c patch 2" below) tells it to treat such things as if they were multipart/mixed. [12.94] ------------------------------ Subject: 04. ***** Filing ***** From: Bill Wohler ------------------------------ Subject: 04.01 Can I append MH messages to a UNIX mailbox format file? From: Bill Wohler Yes, see packmbox (usually in /usr/local/lib/mh or /usr/lib/mh). [1.93] ------------------------------ Subject: 04.02 Can I append MH messages to a GNU Emacs rmail BABYL-format file? From: Bill Wohler To convert your MH folders to BABYL folders, first run the following script on your Mail directory. #!/bin/sh for f in Mail/*; do if [ -d $f ]; then touch msgbox folder=`basename $f` echo -n packing $folder ... packf +$folder echo done mv msgbox Mail-rmail/$folder fi done This assumes you don't have nested folders. Your rmail folders will be left in $HOME/Mail-rmail in MMDF format which rmail can read. Then run rmail-input for each folder, which converts each folder into BABYL format. Be sure not to append any messages before they are converted from MMDF to BABYL, since there may be really strange results. ------------------------------ Subject: 04.03 Why do I get ".../.mh_sequences is poorly formatted?" From: Jerry Peek There is a line length limit in this file. When sequences are unbroken (without gaps in numbering), that makes short entries in the .mh_sequences file, like this: inftex: 72-8000 But when there are lots of numbering gaps, the entry gets long: inftex: 76 79-81 87 95-96 105 109 120 124 135 141 158 163... That's when you run into problems, and why it's good to keep the folder packed when you can. Simply run "folder -pack +folder". If you're refiling a lot of messages in a large folder, you might not be able to use sequences. Use backquotes to give the message numbers directly to "refile". For example: refile +tex/info-tex `pick -to info-tex` That can still generate a long list of arguments to the "refile" command, and some UNIXes can't handle that. In that case, use xargs(1): pick -to info-tex | xargs refile +tex/info-tex If worse comes to worst, fire up a Bourne shell and use a "while" loop: pick -to info-tex | fmt | while read nums; do refile +tex/info-tex $nums done The fmt(1) command breaks long lines into manageable chunks of 72 characters or so, splitting arguments at whitespace. When you redirect the input of a while loop, a "read" command will read the incoming text and store it in a shell variable line by line. This is a quick-&-dirty way to write xargs(1) if you don't have it. [8.94] ------------------------------ Subject: 04.04 + How can you save News articles into an MH folder? From: Jerry Peek If your newsreader handles backquotes on its command line, you can use the mhpath command. For instance, if your "save" command is "s": s `mhpath new +somefolder` Or if your newsreader lets you define your own commands, as in shell aliases, you could define that as a command. If your newsreader can pipe an article to the standard input of a program, use the "rcvstore" command (in the MH library). For instance, if your "pipe" command is "|": | /usr/local/lib/mh/rcvstore +somefolder Of course, you can also put that in a little shell script. [05.95] ------------------------------ Subject: 05. ***** Composing & Replying ***** From: Bill Wohler ------------------------------ Subject: 05.01 Why does repl add a "Re:" to a message that already has one? From: Larry McVoy I carefully reconfigured and rebuilt MH from scratch and the problem went away. ------------------------------ Subject: 05.02 How do I include messages in repl with or without ">"? From: Alan Thew , Mike Schwager , James T Perkins When making a reply, specify a filter file on the command line: repl -filter repl.format This filter file must be in your MH mail directory (usually "Mail", in your home directory). Here are a couple of example repl.format files: overflowtext="",overflowoffset=0 message-id:nocomponent,formatfield=\ "In message %{text}you write:" body:component=">",overflowtext=">",overflowoffset=0 or overflowtext="",overflowoffset=0 date:component="Your message dated",formatfield=\ "%<(nodate{text})%{text}%|%(pretty{text})%>" body:component=">",overflowtext=">",overflowoffset=0 Setting overflowoffset to 0 keeps MH from doing anything to extra-long lines in the headers. In the body, however, this behavior is overridden so that long lines are automatically broken and a ">" is inserted before every line. You could put almost whatever you want between those quotes, although the "standard" ">" makes it easier to read notes that have been included several times. The examples differ with the descriptive text that is inserted before the included body. It is suggested not to use the "prompter" editor in this case, since it is likely that you'll not want to use all of the included message. Indeed, it is proper etiquette to edit out all unnecessary include verbiage so readers don't have to wade through the morass to read your pearls of wisdom. WARNING: the '>' appears on the first line ONLY in versions prior to 6.7.2. Upgrade to MH 6.8. [1.93] See also MH book sections 6.7.4, 6.7.5, 9.4.1 (9.3.1). ------------------------------ Subject: 05.03 How can I eliminate duplicate copies of letters to myself? From: Bill Wohler Add these two lines to your MH profile file: Alternate-Mailboxes: user@host1, user@host2, ... repl: -nocc me To get one copy, you can either: - Take out the "-nocc me"... then you'll get exactly one copy of your replies (assuming all your addresses are listed in Alternate-Mailboxes), or - (See also "How can I save a copy of all messages I send?"). For more info, see the man pages comp(1), repl(1), forw(1), dist(1) and mh-mail(5). --Jerry Peek The Alternate-Mailboxes also tells scan which messages are really from you so that it can place the recipient in the scan line instead of the sender. --Bill Wohler See also MH book sections 6.7.2, 8.6. This is also a convenient way to AVOID automatically cc-ing a mailing list when replying to a person who sent the message to the mailing-list, by listing the name of that mailing list in your alternate mailboxes. --Alec Wolman ------------------------------ Subject: ! 05.04 How can I include my signature? From: Bill Wohler There are several ways. 1) The MH way. 1a) In your Mail directory, create files that include your signature into the format of the message. ~/Mail/components: To: cc: Subject: -------- -- Eric Ziegast ziegast@uunet.uu.net UUNET Technologies uunet!ziegast ~/Mail/replfmt body:component="> ",compwidth=2 :-- :Eric Ziegast ziegast@uunet.uu.net :UUNET Technologies uunet!ziegast To use the replfmt file, add the following to your ~/.mh_profile: repl: -filter replfmt When comp is used, your signature is already there along with my headers. When repl is used, the mhl program takes the body of the letter you're replying to, prepends '> ' to each line and then adds your signature at the end (available after version 6.7). [11.94] 1b) Create an "editor" which can be called from whatnow to add the signature when desired or create a frontend to post (use the .mh_profile line "postproc: postproc" to call it) that always appends the .signature file before calling post to mail the message. David J. Fiander , David A. Truesdell and Tom Wilmore have sample scripts to do these. 1c) Section 13.13 of the MH book lists mysend, a sendproc script to process a message after "What now? send" (see "What references exist for MH" to see where the book's examples can be ftped from). --Jerry Peek [9.92] 2) Using your editor. If you use vi, you can use something like: map S :r ~/.signature to load your signature out of .signature every time you hit 'S'. 3) Use your windowing system. xterm, for example, can provide key and button mappings for the utterly lazy. 4) If you use Emacs with mh-e: 4a) C-c C-s will append the signature. 4b) Add the following to your .emacs file: (add-hook 'mh-compose-letter-function (function (lambda(a b c) (save-excursion (goto-char (point-max)) (beginning-of-line) (mh-insert-signature))))) This hook is called after the draft buffer has been initialized, but before you have a chance to type anything. --Andre Srinivasan [05.95] --Eric W. Ziegast & Hardy Mayer except where noted. Tired of the same old signature? Want different signatures for different newsgroups? Here's a program to help you out. The way it works is to have .signature be a named pipe, so if you don't have named pipes, just say 'n'. The sigrand program then feeds stuff down the pipe every time someone wants to read it. That way it works for more than just news, but for anything that wants to read your .signature, like a mailer. You have your choice of three kinds of signatures: 1) random (short) fortune from "fortune -s"; you get these if you don't have a global sig file. 2) random fortune from ~/News/SIGNATURES [global sig file] 3) random fortune form ~/News/(newsgroup)/SIGNATURES [local sig files] Ask Tom Christiansen for more details. [11.94] See also the Signature FAQ (see "What references exist for MH?"). [11.94] ------------------------------ Subject: ! 05.05 How do I call my editor with arguments? From: John Romine Set your editor (in .mh_profile) to the following shellscript. [05.95] #/bin/sh exec "$@" exit 0 From: Ray Nickson You might find it useful to make $EDITOR, or to use different arguments depending on your EDITOR environment variable. ------------------------------ Subject: 05.06 How can I digestify messages in a folder for mail to another user? From: Jerry Peek , Bill Wohler How about: forw [-digest tmp] [-form forwcomps] [-filter mhl.digest] messages +folder These messages can be un-digestified :-) by the MH burst(1) program. See also MH book sections 6.8, 7.9. From: Glenn Vanderburg There's another way, which is better if the recipient understands MIME. forw -mime messages +folder (Make sure that you either have "automhnproc: mhn" in your mh profile, or type "edit mhn" to whatnow before you send it.) This bundles each message in a MIME message/rfc822 part, and then bundles the whole mess up in a multipart/digest part. You can still add your own text at the beginning. The MH burst program can also understand these messages and split them apart with no problem. This works beautifully with MIME-capable mail readers, especially exmh. [11.94] ------------------------------ Subject: 05.07 How can I change my return address? From: Bill Wohler If you find that your mailer creates a From header that others have trouble replying to, you can add a Reply-To header to override the From header in replies. Copy the components and replcomps files which are normally found in /usr/local/lib/mh into your Mail directory and add a line like the following after the Subject header replacing my address with your address: Reply-To: wohler@newt.com [12.92] ------------------------------ Subject: 05.08 How can I change my From header? From: Bill Wisner If you're just interested in changing the hostname, add a line to $LIB/mtstailor: localname: desired_host_name [12.92] From: Jerry Peek Just put a "From:" header in your "components", "replcomps" and "forwcomps" files. MH will add a "Sender:" header with what it thinks is your real address, but (almost) no one cares about the "Sender:" header anyway. [12.92] ------------------------------ Subject: 05.09 How can I save a copy of all messages I send? From: Bill Wohler , Jerry Peek Copy the components and replcomps files which are normally found in /usr/local/lib/mh into your Mail directory and add a line like the following after the cc header: Fcc: +out All outgoing messages will then be saved in the +out folder. If you make a distcomps file, it needs "Resent-Fcc:". [8.94] ------------------------------ Subject: 05.10 Can the folder in Fcc: be dynamically specified? From: Andy Rabagliati My suggestion would be to run Tom Christiansen's rfi script. If you cannot find it on *.sources archive sites (please try first), I can mail it to you. One good idea would be to write a whatnowproc that files the mail based on a procmail or deliver file. Then you can use the same file for incoming and outgoing mail. [8.94] ------------------------------ Subject: 05.11 + Can I post secure/encryped mail? From: Jeffrey C. Ollie TIS has a free, draft-standard compliant public key system that works with MH (PEM). Check it out on ftp.tis.com. [05.95] From: Kimmo Suominen You could try looking at the URL http://www.tac.nyc.ny.us/ and following the link from the cover page. Everything you need for PGP to work with MH is there (scripts and mhn entries). [05.95] From: Vivek Khera A much more robust Perl script I wrote is appended below [Ed: Send a note to Vivek for the script]. It works its way through aliases, and avoids problems with full names in the headers. Here is my mhn profile entry to display the messages. mhn-show-application/x-pgp: %l pgp -m '%F' to use the script, after you edit the message, at the What now? prompt, type "edit pgpmail" for plain ascii encryption or "pgpmail -m" for a MIME formatted encryption. If you want to add a digital signature, give the script the -s flag also. From: mathew@mantis.co.uk Excellent stuff. I've tried altering it to conform to draft-borenstein-pgp-mime-00.txt. Unfortunately, I can't get mhn to tag PGP-armoured text as application/pgp; format=text without it insisting on base64 encoding it. So I can't quite manage to implement the standard. *sigh* Presumably mhn thinks that anything which isn't text/* must be encoded. [05.95] From: Jason L Tibbitts III There is an Emacs and MH based mail interface called Mew which, while still beta, is quite stable and works well. It fully handles MIME and PGP. Grab it from: ftp://ftp.aist-nara.ac.jp/pub/elisp/Mew/mew-current.tar.gz [05.95] From: Stephen Gildea There are several packages that support PGP in mh-e: mailcrypt by Vivek Khera pgp.el by Jack Repenning Jack and I have been in communication, so I know that pgp.el will work with mh-e 5.0. [05.95] ------------------------------ Subject: 06. ***** Posting ***** From: Bill Wohler ------------------------------ Subject: ! 06.01 What to do with "Problems with edit - draft removed". From: John Romine If your users are using an AT&T version of "vi", it's exiting with non-zero status (supposedly a count of the "errors" during the edit). Move "vi" to "broken_vi" and put it its place [05.95]: #! /bin/sh exec /usr/ucb/broken_vi "$@" exit 0 Alternatively, compile MH with the ATTVIBUG option. Then complain to your vendor that "vi" is broken, and they should fix it. ------------------------------ Subject: 06.02 Can I run my message through a program (e.g., ispell) before sending? From: Jerry Peek It's pretty simple. If your speller is called myspell, use: What now? edit myspell MH will actually execute: myspell /your-mail-draft-directory/draftfile and give the entire draft message to your speller. The header will probably be "misspelled," of course, though you might be able to tell the speller to ignore it--or you could hack up a little shell script to run the speller on just the message body, then tack the corrected body back onto the header before sending. You can automate this some more. For example, if you want your speller to run after your first edit with "prompter" and also after you leave the "vi" editor, add these lines to your MH profile: prompter-next: myspell vi-next: myspell Then, at the "What now?" prompt: What now? e your speller will run. For more info, see the mh-profile(5) man page or section 6.2.1 of the MH book. ------------------------------ Subject: 06.03 What to do with "bad address 'xxx' - no at-sign after local-part". From: Owen Rees You may find that post returns the following message: post: bad address 'Mr. Foo Bar ' - no at-sign after local-part (Bar), continuing... The unquoted dot causes "Mr. Foo" to be parsed as the local part of the address. Either remove the dot, or rewrite the address as follows: "Mr. Foo Bar" (Mr. Foo Bar) (Mr. Foo Bar) fb@somewhere.edu [1.93] ------------------------------ Subject: 06.04 Fixing "post: problem initializing server; [BHST] no servers available" From: Bill Wohler The error message itself is essentially correct. However, what this really means is: MH's post cannot connect to a running sendmail over an SMTP port (MH configured with SMTP and SENDMTS). The potential problems: 1. Your local sendmail daemon is dying or not running for some reason. 2. You use BIND and your local nameserver is not responding. 3. Your mtstailor has its "servers:" pointing to a non-existent machine or a machine which is a) not reachable or b) not running the sendmail daemon. --Peter Marvit 4. The hostname localhost [127.0.0.1] is missing from /etc/hosts. --Bdale Garbee [5.94] Solutions or Workarounds: 2. Delete "/etc/resolv.conf." --Eric Bracken [11.94] 4. Change the "servers" line of the to read servers: 127.0.0.1 \01localnet --Eric Bracken [11.94] ------------------------------ Subject: 06.05 Fixing "post: problem initializing server; [RPLY] 503 Sender already specified" From: Paul Pomes The problem in sendmail is that the RSET after the ONEX does not reset all the state information. Normally sendmail fork()s after the Mail from: statement and a RSET causes that child to exit. This automatically cleans up. If the fork() is suppressed by ONEX, then the source must be modified to do the cleanup. See "srvrsmtp.c patch" in the Appendix. If you don't have the sources, modify your MH sources to not use the ONEX verb. [3.93] ------------------------------ Subject: 06.06 Fixing "post: unexpected response; [BHST] no socket opened" From: Bill Wohler Problem happens when there is no interface defined within the tcp system. A couple of workarounds include: o Use a hostname (other than the local host) instead of localhost in the "servers" entry of the "mtstailor" file (found in the MH library, usually /usr/local/lib/mh). o Recompile MH with sendmail instead of sendmail/mts (not very elegant). A better fix would be to define your tcp interface. Here, you run ifconfig and route (as root) to define the loopback device and route. You should add them to rc.local so they are effected at every boot. # ifconfig lo 127.0.0.1 # Linux # ifconfig lo0 127.0.0.1 # Sun # route 127.0.0.1 If all is well, "ifconfig lo" (or lo0), will show something like this (on my Linux system): lo Link encap Local Loopback inet addr 127.0.0.1 Bcast 127.255.255.255 Mask 255.0.0.0 UP LOOPBACK RUNNING MTU 2000 Metric 0 RX packets 0 errors 0 dropped 0 overrun 0 TX packets 519 errors 0 dropped 0 overrun 0 and "netstat -r" will show: # netstat -r Destination net/address Gateway address Flags RefCnt Use Iface 127.0.0.0 * UN 0 519 lo If you're not on a network and running DNS, your /etc/hosts will need at least: 127.0.0.1 your_host_name localhost # loopback address Note: put your name FIRST on the localhost line. This official name is used by sendmail to determine your return address. If you are on a network and running DNS, you might find that putting your host name in the localhost entry might gum up other things, in which case you'll want your hostname to have its own proper address. --Steve Lembark & Bill Wohler [8.94] This might not do it though. David Youatt says that his network was happy but he still had the problem until he upgraded his system and got the latest revision of sendmail as well. He says: "Turns out that that the problem I was having seems to be caused (at least partly, maybe entirely) by the version of sendmail that is shipped with IRIX 5.2 (sendmail 5.65, I think). The version shipped w/IRIX 5.3 (in beta) is sendmail 8.6.9 and works fine." I'm not entirely happy with this section, so please give me some feedback. If you have this problem, please send me a brief description so I'll know which problems and solutions seem to be the most prevalent. ------------------------------ Subject: 06.07 How do I fix the "X-Authentication-Warning" header? From: Bill Wohler You get a header like: X-Authentication-Warning: screamer.rtp.ericsson.se: Host rcur7.rtp.ericsson.se didn't use HELO protocol Easy possibilities are: apply the patch to MH that comes with Sendmail 8.X.X and makes it use HELO, or comment out the line that says Opauthwarnings in your sendmail.cf. ------------------------------ Subject: 06.08 + Fixing "post: unexpected response; [RPLY] 503 Need MAIL before RCPT" From: Bjoern Stabell I inserted: clientname: localhost in the mtstailor file, and that fixed the problem. [05.95] ------------------------------ Subject: 06.09 + Fixing "post: problem initializing server; [BHST] premature end-of-file on socket" From: Chuck Mattern If you are running sendmail instead of smail, make sure that all smtp entries in /etc/inetd.conf are commented out. If you do edit /etc/inetd.conf, don't forget to run to restart inetd with "kill -1 ". [05.95] ------------------------------ Subject: 06.10 + Fixing "Sender didn't use the HELO protocol" From: Terry Manderson Add clientname sender to /usr/lib/mh/mtstailor where sender is the name of the machine sending the message. The error message occurs because newer MTA's require SMTP's "HELO" command which MH omits in some configurations. When you add the above line, it forces MH to use the HELO command. [05.95] From: Stephan Neuhaus Put clientname: localhost in your mtstailor file. [05.95] From: Scott Hutton Alternately, change or comment out Opauthwarnings from your sendmail.cf. [05.95] ------------------------------ Subject: 06.11 + Fixing "post: problem initializing server; [RPLY] 553 Local configuration error, hostname not recognized as local From: "Matthew V. J. Whalen" Change your "mts" in "conf/MH" from "sendmail/mts" to just "sendmail." [05.95] From: Bill Wohler The solution above will keep MH from using any SMTP server on your network. require sendmail to be installed on all machines. You could take advantage of the "sendmail/mts" option to have MH talk to a non-local sendmail. Add: servers It may also be caused by old versions of sendmail. [05.95] ------------------------------ Subject: 07. ***** Mail Filters ***** From: Bill Wohler ------------------------------ Subject: 07.01 What mail filters are available? From: Bill Wohler The list currently includes slocal (included with MH), deliver, procmail and mailagent. They are briefly described here. Slocal is probably the most popular by virtue of being included in the distribution. The next most popular entry is deliver, followed closely by procmail. Slocal comes with MH. It can be used to process incoming mail based on the contents of any of the headers. Actions include filing messages, running commands, printing messages on your terminal and so on. The configuration is made in ~/.maildelivery. People seem to have trouble with slocal bugs, and you can't use it if you don't have write permission on your system maildrop so a lot of people have opted for the alternatives, but it's easy to use and comes with MH. [8.94] Deliver can run any script or program (called ~/.deliver), so you really can do anything you want to incoming mail. One feature that it sports that no other does is that you can install it as a local mailer in place of /bin/mail. If it's the local mailer, you don't need to have a .forward--~/.deliver is run anyway. In addition, it allows the system administrator to write some programs to filter everybody's mail. It came with my Linux system, so installation was non-existent. [8.94] From: Stephen R. van den Berg Procmail can be used to create mail-servers, mailing lists, sort your incoming mail into separate folders/files (real convenient when subscribing to one or more mailing lists or for prioritizing your mail), preprocess your mail, start any programs upon mail arrival (e.g. to generate different chimes on your workstation for different types of mail) or selectively forward certain incoming mail automatically to someone. [8.94] ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/procmail.tar.gz 160k From: Raphael Manfredi "mailagent" is yet another mail filter, written in perl, which will let you do anything with your mail. It has all the features you may expect from a filter: mailing lists sorting, forwarding to MTA or to inews, pre-processing of message before saving into folder, vacation mode, etc. It was initially written as an Elm-filter replacement, but has now enough power to also supplant MMDF's .maildelivery. There is also a support for @SH mail hooks, which allows you to automatically distribute patches or software via command mails. The mailagent was designed to make mail filtering as easy as it can be. It is highly configurable and fairly complete. Rules are specified in a lex-like style, with the full power of perl's regular expressions. The automaton supports the notion of mode, and header selection has many magic features built-in, to ease the rule writing process. The distribution comes with a set of examples, an exhaustive test suite, and naturally a detailed manual page. It should be noted that the mailagent will work even if your system administrator forbids "| programs" hooks in the ~/.forward, provided you have access to some sort of cron daemon. You can get a full email distribution of the latest release by sending an appropriate command to my own mailagent, such as: Subject: Command @SH maildist PATH mailagent - where PATH stands for YOUR email address, i.e. a path from me to you. [8.94] ------------------------------ Subject: ! 07.02 Why slocal writes messages to system mailbox that from(1) can't read. From: Bill Wohler Upgrade to MH 6.8 and set the RPATHS option. Better yet, use a more MH-like command instead of from: "scan -file $MAIL". [05.95] ------------------------------ Subject: 07.03 Where can I read about slocal and the format of .maildelivery? From: Bill Wohler See the slocal man page. Here is brief example of a .maildelivery file that stores messages to babble in a folder and the system mailbox, stores mh-users in a folder but not the system mailbox, and puts the rest in the system mailbox. to mh-users | A "/usr/local/lib/mh/rcvstore -create +lists/mh-users" cc mh-users | A "/usr/local/lib/mh/rcvstore -create +lists/mh-users" to babble | R "/usr/local/lib/mh/rcvstore -create +lists/babble" cc babble | R "/usr/local/lib/mh/rcvstore -create +lists/babble" default - > ? /usr/spool/mail/wohler Your .forward file may look like (quotes necessary): "| /usr/local/lib/mh/slocal -user your_login" In some implementations, the "-user your_login" is not needed. If not, manually running slocal with the flag will produce an error. See also chapter 11 in the MH book. Alternatives to slocal include deliver, procmail, and mailagent. Archie can help you find where they are kept. ------------------------------ Subject: 07.04 How do I debug my .maildelivery file? From: Bill Wohler Use as many of the following as necessary. Put a message into a file and call slocal directly on it. /usr/local/lib/mh/slocal -user $USER -verbose -debug < test-msg Modify your .forward to look like: "|/bin/sh -c 'exec >> /tmp/out 2>&1; /usr/local/lib/mh/slocal -user $USER -verbose -debug'" Or modify a rule in .maildelivery to look like this: to foo | R "set -xv; exec >/tmp/out 2>&1; /usr/local/lib/mh/rcvstore +foo" The previous examples are broken up for readability; the text must appear on one line. See also MH book section 11.11. [3.93] ------------------------------ Subject: 07.05 Why isn't slocal working? From: Bill Wohler If slocal doesn't appear to be doing anything, run the following /usr/local/lib/mh/slocal -user your_login -verbose < file where "file" is some message in a mail folder. If you get something like: .maildelivery: ownership/modes bad (0, 154,154,0100666) your .maildelivery is writable by too many people. Make it writable only by you by running "chmod 644 .maildelivery". See also "How do I debug my .maildelivery file?" [3.93] ------------------------------ Subject: 08. ***** mh-e ***** From: Bill Wohler ------------------------------ Subject: 08.01 ! Is there documentation for mh-e? From: Bill Wohler Yes. See "What references exist for MH?". [05.95] ------------------------------ Subject: 08.02 How can mail aliases can be expanded in mh-e? From: Stephen Gildea Typing C-c C-w will show you the expanded list of recipients. [5.94] ------------------------------ Subject: 08.03 + How do I use POP with mh-e? From: Andy Norman Assume your POP server is called cuckoo. Add an entry to your MH profile (~/.mh_profile) for 'inc' like so: inc: -noaudit -norpop -noapop -host cuckoo Add the following to ~/.netrc: machine cuckoo.domain.name login joeuser password secret Replace the hostname, login and password with your own, of course. The hostname probably has to be fully qualified (i.e., include the full domain name). This example assumes that you can send mail by other means (e.g., with SMTP). [05.95] ------------------------------ Subject: 09. ***** Xmh ***** From: Bill Wohler ------------------------------ Subject: 09.01 How can I get xmh to use Emacs as the editor? From: Bob Ellison The modifications to xmh to support an external editor, annotations, and an append command can be found in the these places. ftp.x.org /R5contrib/xmh-mods-R5-1.7.Z 37k ftp.sei.cmu.edu /pub/xmh/xmh-mods-R5-1.7.Z 37k /pub/xmh/xmh-mods-R6-1.0.Z 37k From: Andrew Wason As of R5, xmh has a new action proc called XmhShellCommand. A string parameter will be executed as a shell command with the currently selected messages as parameters (or the current message if there are no selected messages). Using this new action, a couple of shell scripts, a window version of emacs (e.g. xemacs) and some elisp code, xmh can use emacs as its editor instead of the built in Athena text widget editor. This doesn't require any source code changes to xmh. These are included in the Appendix "Switching xmh's editor". ------------------------------ Subject: 09.02 Does xmh support subfolders? From: Steve Malowany Yes. Create one by invoking "Create Folder" as usual, and enter something like: existing-folder/new-sub-folder. You can then access the subfolder by popping up a menu over the "existing-folder" button item. But: From: John Cooper The R5 version of xmh does *not* handle nested sub-folders. If you create a folder as 'grab/some/bandwidth', xmh displays this folder name for the remainder of the session where it was created, BUT if you later re-run xmh, the folder is no longer visible to xmh. See also MH book section 15.6.2 (14.6.2). ------------------------------ Subject: 09.03 How do I precede included messages with ">" when replying in xmh? From: Len Makin Include the following line in your ~/app-defaults/XMh file: Xmh*replyInsertFilter: "sed 's/^/> /'" or, Xmh.ReplyInsertFilter: /usr/local/lib/mh/mhl -form repl.filter From: Andy Linton Using this means that you can chose to insert the original by use of the "Insert" button in the Draft message pane. See "How do I include messages in repl with or without ">"?" to find examples of repl.filter. See also MH book sections 15.1.4 (14.1.4), 16.3.3 (15.2.3). ------------------------------ Subject: ! Glossary From: Bill Wohler MH Mail Handler POP3 Post Office Protocol, RFC 1225 MMDF Multi-channel Memo Distribution Facility MIME Multipurpose Internet Mail Extensions, RFC 1521 IMAP Internet Message Access Protocol, RFC 1064, 1176 TIS Trusted Information Systems PEM Privacy Enhanced Mail PGP Pretty Good Privacy SMTP Simple Mail Transport Protocol (STD 10; RFC 821) ------------------------------ Subject: Acknowledgments From: Bill Wohler I'd like to thank the following people for providing ideas on the layout of this article: Joe Wells Richard M. Stallman David Elliott Tom Christiansen Eugene N. Miya We are also grateful to the individuals mentioned below and in the text of this document who have provided answers or other information to make this a better document. I regret that it is possible that some names have been accidently omitted. I would also like to thank all the readers of comp.mail.mh. Kim F. Storm Edward Vielmetti ------------------------------ Subject: Switching xmh's editor From: Andrew Wason #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'README' <<'END_OF_FILE' XThis is a short description of what to do with each of the enclosed files. X XXmh.ad X Merge this in with your xmh resources. If you already have X user defined buttons, then you may need to renumber the X buttons in this resource file. X Xxmh-command.el X Byte compile this file and put it in your GNU emacs load-path. X Xxmhcommand Xxmhemacs X Put these somewhere in your path. X X XOnce you have installed these, restart the R5 xmh with the new Xresources. When you press the repl, forw or comp buttons Xan xemacs window will come up with your draft message. X XOnce you have written your mail, save it and exit GNU emacs (C-xC-c). XYou will be prompted if you want to send the current message. XIf you enter 'y', the message will be sent and the output will Xbe displayed in an emacs window (in case you use -verbose or -snoop). XThen you will be prompted to exit emacs. Enter 'y' when you are ready. X XIf you answered 'n' when prompted to send the message, Xthen the draft message will be deleted and emacs will exit. X XYou can modify the Xmh.ad resources to add more buttons. XAny MH command which accepts "+folder msg" can be used X(e.g. a replx shell script which includes the body of the Xmessage being replied to can be bound to a replx button) X X XAndrew Wason Xaw@bae.bellcore.com END_OF_FILE if test 1269 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi # end of 'README' fi if test -f 'Xmh.ad' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Xmh.ad'\" else echo shar: Extracting \"'Xmh.ad'\" \(457 characters\) sed "s/^X//" >'Xmh.ad' <<'END_OF_FILE' XXmh*CommandButtonCount: 3 X XXmh*commandBox.button1.label: repl XXmh*commandBox.button1.translations:\ X #override\n\ X : XmhShellCommand(xmhcommand y repl) unset() X XXmh*commandBox.button2.label: forw XXmh*commandBox.button2.translations:\ X #override\n\ X : XmhShellCommand(xmhcommand y forw) unset() X XXmh*commandBox.button3.label: comp XXmh*commandBox.button3.translations:\ X #override\n\ X : XmhShellCommand(xmhcommand n comp) unset() END_OF_FILE if test 457 -ne `wc -c <'Xmh.ad'`; then echo shar: \"'Xmh.ad'\" unpacked with wrong size! fi # end of 'Xmh.ad' fi if test -f 'xmh-command.el' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xmh-command.el'\" else echo shar: Extracting \"'xmh-command.el'\" \(1294 characters\) sed "s/^X//" >'xmh-command.el' <<'END_OF_FILE' X;;; These functions are for use with xemacs and xmh. X;;; The R5 xmh has a new action - XmhShellCommand which executes X;;; a shell command with the current msg as an arg. X;;; By executing something like: X;;; XmhShellCommand(xmhcommand repl) X;;; you can use xemacs as your editor with xmh. X;;; X;;; The following elisp functions perform the basic whatnowproc functionality X;;; (quitting and deleting, sending) X;;; X;;; Andrew Wason aw@bae.bellcore.com X X X;;; Override C-xC-c X(define-key indented-text-mode-map "\C-x\C-c" 'xmh-command-send-or-delete) X X X(setq mhdraft (getenv "mhdraft")) ; save the filename of the draft X X X(find-file mhdraft) ; load the draft letter X(indented-text-mode) X(setq draft-buffer (current-buffer)) ; save the buffer the draft is in X X X(defun xmh-command-send-or-delete () X "Prompt to send or delete letter, then quit." X (interactive) X (set-buffer draft-buffer) X (if (y-or-n-p "Send message? ") X (progn X (save-buffer) ; save the draft buffer X (message "Sending...") X (pop-to-buffer "MH mail delivery"); pop to a buffer for "send" output X (erase-buffer) X (call-process "send" nil t t mhdraft) ; call MH "send" X (if (y-or-n-p "Exit? ") X (kill-emacs))) ; exit emacs X (delete-file mhdraft) ; delete the draft letter X (kill-emacs))) ; exit emacs END_OF_FILE if test 1294 -ne `wc -c <'xmh-command.el'`; then echo shar: \"'xmh-command.el'\" unpacked with wrong size! fi # end of 'xmh-command.el' fi if test -f 'xmhcommand' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xmhcommand'\" else echo shar: Extracting \"'xmhcommand'\" \(669 characters\) sed "s/^X//" >'xmhcommand' <<'END_OF_FILE' X#!/bin/sh X# This shell should be invoked by the xmh XmhShellCommand() action as X# XmhShellCommand(xmhcommand y repl) X# XmhShellCommand(xmhcommand n comp) etc. X# If the second arg is y, then the message list will be used. X X# We invoke the passed MH command on the identified message X# (we must strip the message number and folder from the pathname) X(if [ $1 = "y" ] Xthen X $2 -whatnowproc xmhemacs +`dirname \`echo $3 | \ X sed "s;\\\`mhpath +\\\`/;;"\`` `basename $3` X X# You can use this more readable version instead if you have ksh X# $2 -whatnowproc xmhemacs +$(dirname $(echo $3 | \ X# sed "s;$(mhpath +)/;;")) $(basename $3) X Xelse X $2 -whatnowproc xmhemacs Xfi)& END_OF_FILE if test 669 -ne `wc -c <'xmhcommand'`; then echo shar: \"'xmhcommand'\" unpacked with wrong size! fi chmod +x 'xmhcommand' # end of 'xmhcommand' fi if test -f 'xmhemacs' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xmhemacs'\" else echo shar: Extracting \"'xmhemacs'\" \(116 characters\) sed "s/^X//" >'xmhemacs' <<'END_OF_FILE' X#!/bin/sh X# Invoke xemacs and load the xmh-command.el stuff. X# xmhemacs is used by xmhcommand Xxemacs -l xmh-command END_OF_FILE if test 116 -ne `wc -c <'xmhemacs'`; then echo shar: \"'xmhemacs'\" unpacked with wrong size! fi chmod +x 'xmhemacs' # end of 'xmhemacs' fi echo shar: End of shell archive. exit 0 ------------------------------ Subject: babyl2mh.pl From: Vivek Khera #!/usr/gnu/bin/perl # incorporate an RMAIL babyl file into an MH folder # # usage: babyl2mh +folder babyl-file # # V. Khera 17-JUL-1991 # where to find rcvstore $rcvstore = "/usr/local/lib/mh/rcvstore"; # # pull out command line args # die "usage: babyl2mh +folder babyl-file\n" unless @ARGV == 2; $folder = shift; # make sure folder name starts with a "+" (substr($folder,0,1) eq "+") || (substr($folder,0,0) = "+"); $bfname = shift; print "Incorporating RMAIL file $bfname into MH folder $folder\n"; # # read in babyl file. # $/ = "\037"; # this separates the records in a babyl file $* = 1; # records are multi-lines open(BABYL,$bfname) || die "Couldn't open $bfname\n"; $_ = ; # discard header. $msgnum = 0; while () { chop; # get rid of delimeter s/\f(.|\n)*\*\*\* EOOH \*\*\*\n//; # remove duplicate header information open(RCVSTORE,"|" . $rcvstore . " $folder"); print RCVSTORE $_; $msgnum++; print "Message $msgnum done.\n"; } ------------------------------ Subject: inco From: Juergen Nickelsen #!/bin/sh # Usage: inco [from [folder]] # "from" defaults to $HOME/Mail/outbound, "folder" to +inbox. lispfile=/tmp/inco.$$.el input=${1-$HOME/Mail/outbound} tmpmbox=/tmp/inc.$$.mbox folder=${2-+inbox} if [ $# -ge 3 ]; then echo Usage: `basename $0` [ from [ folder ]] exit 2 fi trap "rm -f $lispfile $tmpmbox ; exit 1" 1 2 15 touch $tmpmbox chmod 600 $tmpmbox echo '(rmail-input "'$input'") (rmail-last-message) (setq last (rmail-what-message)) (rmail-show-message 1) (while (not (equal (rmail-what-message) last)) (rmail-output "'$tmpmbox'") (rmail-delete-forward nil)) (rmail-output "'$tmpmbox'") (kill-buffer (current-buffer)) ' > $lispfile emacs -batch -l $lispfile inc -file $tmpmbox $folder > $input rm -f $lispfile $tmpmbox ------------------------------ Subject: srvrsmtp.c patch From: Paul Pomes >From the 5.67 sources: *** srvrsmtp.c- Mon Feb 22 12:25:54 1993 --- srvrsmtp.c Mon Feb 22 12:29:09 1993 *************** *** 384,389 **** --- 384,395 ---- message("250", "Reset state"); if (InChild) finis(); + + /* clean up a bit if running in parent */ + hasmail = FALSE; + dropenvelope(CurEnv); + CurEnv = newenvelope(CurEnv); + CurEnv->e_flags = BlankEnvelope.e_flags; break; case CMDVRFY: /* vrfy -- verify address */ ------------------------------ Subject: mhn.c patch 1 From: Casper H.S. Dik *** mh-6.8.3/uip/mhn.c.org Wed Dec 1 05:01:36 1993 --- mh-6.8.3/uip/mhn.c Fri Jun 3 12:38:04 1994 *************** *** 1014,1019 **** --- 1014,1020 ---- #include "../h/mhn.h" + #undef si_value struct str2init { char *si_key; int si_value; ------------------------------ Subject: mhn.c patch 2 From: Keith Moore *** uip/mhn.c Tue Sep 13 23:06:18 1994 --- uip/mhn.c.NEW Tue Sep 13 22:58:10 1994 *************** *** 3035,3043 **** --- 3035,3048 ---- if (((cp = m_find (buffer)) == NULL || *cp == 0) && (cp = ct -> c_showproc) == NULL) { if (!alternate) + #ifdef UTK + /* treat as multipart/mixed per rfc 1521 */ + return show_multi (ct, serial, alternate); + #else content_error (NULLCP, ct, "don't know how to display content"); + #endif return NOTOK; } } Local Variables: mode: outline outline-regexp: "^Subject:" fill-prefix: " " End: